package com.yunxin.core.application.dto.page;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * @author zero°
 * @since 2023-05-27
 */
@Data
@Schema(description = "组件元素对象")
public class PageComponentElementInfoDataDTO<T> implements Serializable {

    /**
     * 元素code
     */
    @Schema(description = "元素code")
    private String elementCode;

    /**
     * 组件元素名称
     */
    @Schema(description = "组件元素名称")
    private String elementName;

    /**
     * 业务场景  1：自有产品  2：自定义
     */
    @Schema(description = "业务场景  1：自有产品  2：自定义")
    private Integer businessSceneType;

    /**
     * 产品id(businessSceneType = 1时有值)
     */
    @Schema(description = "产品id(businessSceneType = 1时有值)")
    private Long productId;

    /**
     * 元素图片地址
     */
    @Schema(description = "元素图片地址")
    private String imageUrl;

    /**
     * 组件元素排序
     */
    @Schema(description = "组件元素排序")
    private Integer sort;

    /**
     * 元素信息
     */
    @Schema(description = "元素信息")
    private T elementInfo;

    /**
     * 推送频次 1-永久一次 2-每次进入时打开 3-自定义弹窗时间
     */
    @Schema(description = "推送频次 1-永久一次 2-每次进入时打开 3-自定义弹窗时间")
    private Integer pushFrequencyType;

    /**
     * 自定义弹窗开始时间和结束时间["2022-12-03 03:45:08","2022-12-04 03:45:08"]
     */
    @Schema(description = "自定义弹窗开始时间和结束时间")
    private List<String> timeRuleList;


}
